The present invention relates to the field of computer graphics, compositing images, adding special effects to images, and the optimization of view images resulting therefrom.
Compositing images is the combining of more than one image to create a single new image. Compositing of images can be performed with a single image frame, such as a photograph or a sequence of images, such as film or movies. For example an image of a fish could be combined with the image of a grassy field so that the fish is swimming in the grass. Alternatively, two (or more) sequences of images can be composited. For example, a sequence of images of a wind blown grassy field and a sequence of images of a school of fish swimming through the ocean may be composited to form a sequence of images showing the school of fish swimming through the wind blown grassy field. The school of fish and/or the grassy field may be created in an animation program or be a film of real world events.
Compositing also includes the techniques of enhancing a sequence of images captured on film by adding special effects, computer generated images, still images, animation, and other filmed images to a motion picture. Compositing is used to alter a sequence of film, thus creating a new sequence of images. Special effects, computer generated images, still images, animation and other filmed images are combined with film by compositing to create a new, altered sequence of images.
To create an end result image or sequence of images, input images from various sources are combined with various effects. Effects may also be referred to as operators. Examples of effects include hue, color correction, zoom, composite, and others. These are examples of simple effects. Effects such as translate, rotate, scale, and shear are simple effects known as affine transforms. Affine transforms are transformations in which parallel lines remain parallel after the transformation. Complex effects include the application of computationally intensive algorithms to an image or sequence of images with Fourier transforms and other non-affine transforms.
The invention provides a system and method for optimizing the processing of a sequence of images represented as a directed acyclic graph. The method comprises receiving a selection of a view node at which point an output image is to be viewed. The cost to process each predecessor branch of nodes of a plurality of branches of nodes in the directed acyclic graph. The output image is rendered by processing the predecessor branches in order from most costly to least costly. In one embodiment, images may be represented as a directed acyclic graph. In one embodiment, the method also includes re-ordering the predecessor branches based on the cost to process the branches. The method may be implemented on a system such as a computer.